﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using BUS;
using DAL;
namespace QuanLyNhaSach
{
    public partial class Form_QLNhanVien : DevComponents.DotNetBar.Office2007Form
    {
        Form_Them_CapNhat_NhanVien frm;
        NhanVien_BUS nhanvien_bus;
        NhanVien_DTO nhanvien_dto;
        LoaiNhanVien_BUS loainhanvien_bus;
        public Form_QLNhanVien()
        {
            InitializeComponent();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            frm = new Form_Them_CapNhat_NhanVien();
            frm.KhiThemMoi += frm_KhiThemMoi;
            frm.Action = "Insert";
            frm.ShowDialog();
        }

        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            frm = new Form_Them_CapNhat_NhanVien();
            frm.KhiCapNhat += frm_KhiCapNhat;
            frm.Action = "Update";
            frm.ID = dtg_QLNhanVien.Rows[dong].Cells["Str_MaNV"].Value.ToString();
            frm.ShowDialog();
        }
        void LoadDanhSachNhanVien()
        {
            nhanvien_bus = new NhanVien_BUS();
            dtg_QLNhanVien.DataSource = nhanvien_bus.LayDanhSachNhanVien();
        }
        void frm_KhiThemMoi()
        {
            LoadDanhSachNhanVien();
        }
        void frm_KhiCapNhat()
        {
            LoadDanhSachNhanVien();
        }
        int dong;
        private void dtg_QLNhanVien_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            dong = e.RowIndex;
            nhanvien_dto = new NhanVien_DTO();
            nhanvien_bus = new NhanVien_BUS();
            nhanvien_dto = nhanvien_bus.DanhSachNhanVien_TheoMaNhanVien(dtg_QLNhanVien.Rows[dong].Cells["Str_MaNV"].Value.ToString());
            txtTenNV.Text = nhanvien_dto.Str_HoTen;
            txtDiaChi.Text = nhanvien_dto.Str_DiaChi;
            txtDienThoai.Text = nhanvien_dto.Str_DienThoai;
            txtEmail.Text = nhanvien_dto.Str_Email;
            if (nhanvien_dto.I_GioiTinh == 1)
                txtGioiTinh.Text = "Nam";
            else
                txtGioiTinh.Text = "Nữ";
            dateTimeInputNgaySinh.Value = nhanvien_dto.D_NgaySinh;
            txtCMND.Text = nhanvien_dto.Str_CMND;
            cbxChucVu.SelectedValue = nhanvien_dto.Str_MaLoaiNhanVien;
        }

        private void Form_QLNhanVien_Load(object sender, EventArgs e)
        {
            dtg_QLNhanVien.AutoGenerateColumns = false;
            LoadDanhSachNhanVien();
            loainhanvien_bus = new LoaiNhanVien_BUS();
            cbxChucVu.DataSource = loainhanvien_bus.LayDanhSachLoaiNhanVien();
            cbxChucVu.DisplayMember = "Str_TenLoaiNV";
            cbxChucVu.ValueMember = "Str_MaLoaiNV";
        }

        private void dtg_QLNhanVien_Click(object sender, EventArgs e)
        {
            if (dtg_QLNhanVien.Rows[dong].Cells["CHECKBOX"].Value != null)
                dtg_QLNhanVien.Rows[dong].Cells["CHECKBOX"].Value = null;
            else
                dtg_QLNhanVien.Rows[dong].Cells["CHECKBOX"].Value = true;
        }
        List<string> MaNV;
        private void btnXoa_Click(object sender, EventArgs e)
        {
            MaNV = new List<string>();
            for (int i = 0; i < dtg_QLNhanVien.Rows.Count; i++)
            {
                if (dtg_QLNhanVien.Rows[i].Cells["CHECKBOX"].Value != null)
                    MaNV.Add(dtg_QLNhanVien.Rows[i].Cells["Str_MaNV"].Value.ToString());
            }
            if (MaNV.Count == 0)
            {
                MessageBoxEx.Show("Bạn chưa chọn nhân viên để xóa.", "Thông báo");
                return;
            }

            if (MessageBoxEx.Show("Bạn có chắc chắn xóa dòng này không?", "Xóa nhân viên", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                for (int i = 0; i < MaNV.Count; i++)
                {
                    nhanvien_dto = new NhanVien_DTO();
                    nhanvien_bus = new NhanVien_BUS();
                    nhanvien_dto.Str_MaNV = MaNV[i].ToString();
                    nhanvien_bus.XoaNhanVien(nhanvien_dto);
                }
                LoadDanhSachNhanVien();
                MaNV.Clear();
            }
            else
            {
                for (int i = 0; i < dtg_QLNhanVien.Rows.Count; i++)
                {
                    dtg_QLNhanVien.Rows[i].Cells["CHECKBOX"].Value = false;
                }
            }
        }

        private void dtg_QLNhanVien_DoubleClick(object sender, EventArgs e)
        {
            btnCapNhat_Click(sender, e);
        }
    }
}
